package org.jeecg.modules.demo.Kingdee.bank.entity.settlement;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 多笔付款查证响应实体 (SKDLBATC)
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BatchPaymentQueryResponse {
    
    /**
     * 响应状态
     */
    private String status;
    
    /**
     * 响应状态描述
     */
    private String statusText;

    /**
     * 失败原因
     */
    private String failReason;

    /**
     * 批次支付任务状态
     * 01：待提交：待提交审批
     * 02：待付款：已提交审批，流程运行中
     * 03：处理中：审批通过，正在付款或批次内包含处理中的支付明细任务
     * 04：付款成功：支付终态，批次付款成功
     * 05：付款失败：支付终态，批次付款失败
     * 06：已拒绝：批次审批不同意
     * 07：部分成功：支付终态，批次内同时包含付款失败和付款成功的支付明细任务
     */
    private String pyStat;

    /**
     * 备注 (JSON格式字符串)
     * 示例: {"approvalTime":"2023-12-06 11:11:05","createTime":"2023-11-21 13:50:39","rejectReason":"不同意","optUserNm："张三"}
     */
    private String extendRemark;

    /**
     * 付方账号
     */
    private String pypartyAccnum;

    /**
     * 付方户名
     */
    private String pypartyAccnm;

    /**
     * 付方开户行
     */
    private String pypartyDepBnkNm;

    /**
     * 批量付款详情列表
     */
    private List<BatchPaymentQueryDetail> batchInfoList;
    
    /**
     * 批量付款查证详情
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class BatchPaymentQueryDetail {
        /**
         * 外部请求批次号
         */
        private String extBatchNo;
        
        /**
         * 外部请求流水号
         */
        private String extOrdNo;
        
        /**
         * 司库批次流水号
         */
        private String batchSeqNo;
        
        /**
         * 司库流水号
         */
        private String txnSeqNo;
        
        /**
         * 付款账号
         */
        private String pyAccNo;
        
        /**
         * 付款金额(分)
         */
        private Long pyAmt;
        
        /**
         * 收方账号
         */
        private String rcvAccNo;
        
        /**
         * 收方账户名称
         */
        private String rcvAccNm;
        
        /**
         * 单据状态
         */
        private String docStatus;
        
        /**
         * 银行处理结果
         */
        private String bankProcResult;
        
        /**
         * 银行流水号
         */
        private String bankSeqNo;
        
        /**
         * 交易时间
         */
        private String txnTime;
        
        /**
         * 扩展备注
         */
        private String extendRemark;
    }
}